package java学习.第18章_JDK8_17新特性;

import org.junit.Test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * 新的语法结构，为我们勾勒出了 Java 语法进化的一个趋势，
 * 将开发者从复杂、繁琐的低层次抽象中逐渐解放出来，
 * 以更高层次、更优雅的抽象，既降低代码量，又避免意外编程错误的出现，
 * 进而提高代码质量和开发效率。
 */
public class JDK9之try新特性 {
    /**
     * jshell
     * 可以直接 命令实时命令
     */

    @Test
    public void try新特性() throws FileNotFoundException {
        //JDK7 中
        try(FileInputStream fI =
                    new FileInputStream("File/hello.txt");){
            byte[] bytes = new byte[10];
            int len;
            while ((len = fI.read(bytes)) != -1){

                System.out.print(new String(bytes,0,len));
            }
        }catch (IOException e){
            e.printStackTrace();
        }

        //JDK9
        FileInputStream fI = new FileInputStream("File/hello.txt");
        try(fI){//更简单且好看
            byte[] bytes = new byte[10];
            int len;
            while ((len = fI.read(bytes)) != -1){

                System.out.print(new String(bytes,0,len));
            }
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}
